#Demo10.ps1
#Usage d'un RollFileAppender
#Il s'agit d'un m?canisme de s?quence, cyclique ou non, autour d'un nom de fichier.


function TestLevel{
 Write-host "Level $($Log.Logger.Level)" -for green
 $Log.Debug("Level Debug.")
 $Log.Info("Level Info.")
 $Log.Warn("Level Warn.")
 $Log.Error("Level Error.")
 $Log.Fatal("Level Fatal.")
}

$FileName="C:\Temp\LogDemo10.txt"

 #D?s que le fichier atteindra 1KB, un nouveau fichier C:\Temp\LogDemo10.txt sera cr?? et 
 #l'ancien sera automatiquement renomm? en C:\Temp\LogDemo10.txt.1.
 #A la prochaine it?ration le fichier .1 sera renomm? en .2
$Appender=New-RollingFileAppender $FileName -Name "FichierDeLog"`
                                  -MaximumFileSize "1KB" -MaxSizeRollBackups 2 `
                                  -AppendToFile|`
 Add-LogLayout -L "%date %-5level - %message%newline"|`
 Enable-LogAppender|`
 Set-LogBasicConfigurator

if ($Appender.Writer -eq $null)
     #Si on ne dispose pas de droit d'?criture ou si le drive est en R/O 
     # un message d'erreur est affich? sur la console. Le script continue mais la propri?t? Writer est ? $null.  
  {Write-Warning "L'appender $Name n'est peut ?tre pas correctement configur? pour le fichier $Filename"}

 
$Log = Get-LogLogger "LogPowerShell" 
1..3|% {Testlevel}
dir "C:\Temp\LogDemo10*"
type "C:\Temp\LogDemo10*"

 #On force la prise en compte de la date dans le nom du fichier
Set-Date -Date (Get-Date).AddDays(1)
1..3|% {Testlevel}
Set-Date -Date (Get-Date).AddDays(-1)
dir "C:\Temp\LogDemo10*"
type "C:\Temp\LogDemo10*"
Stop-Log
